package com.lv.service.bean

import android.os.Parcelable
import androidx.annotation.Keep
import kotlinx.parcelize.Parcelize

/**
 * 作者： ygx
 * 创建日期：2023/4/14 2:42 PM
 * 签名： 天行健，君子以自强不息；地势坤，君子以厚德载物。
 * -    _              _           _     _   ____  _             _ _
 * -   / \   _ __   __| |_ __ ___ (_) __| | / ___|| |_ _   _  __| (_) ___
 * -  / _ \ | '_ \ / _` | '__/ _ \| |/ _` | \___ \| __| | | |/ _` | |/ _ \
 * - / ___ \| | | | (_| | | | (_) | | (_| |  ___) | |_| |_| | (_| | | (_) |
 * -/_/   \_\_| |_|\__,_|_|  \___/|_|\__,_| |____/ \__|\__,_|\__,_|_|\___/
 * <p>
 * You never know what you can do until you try !
 * ----------------------------------------------------------------
 * 描述：
 */
@Parcelize
@Keep
data class BookBean(
    val other: List<BookHomeBean>?,
    val local: List<BookHomeBean>?
) : Parcelable

@Parcelize
@Keep
data class BookHomeItemBean(
    val province: String,
    val bookHome: List<BookHomeBean>?,
) : Parcelable

@Parcelize
@Keep
data class BookHomeBean(
    val id: String,
    val province: String,
    val periods: String,
    val period: Int,
    val layout: String,
    val cover: String,
    var ismark: String?,
    val code: String,
    var num: Int?,
) : Parcelable

@Parcelize
@Keep
data class BookDetailsBean(
    val code: String,
    val cover: String,
    val coverAndBack: List<String>,
    val created: String,
    val directories: List<DirectorieBean>?,
    val id: String,
    val isMarketable: String,
    val ismark: String,
    val layout: String,
    val period: Int,
    val periods: String,
    val primaries: List<PrimaryBean>,
    val province: String,
) : Parcelable

@Parcelize
@Keep
data class BookHZDetailsBean(
    val code: String,
    val cover: String,
    val coverAndBack: List<String>,
    val created: String,
    val directories: List<DirectorieHZBean>?,
    val id: String,
    val isMarketable: String,
    val ismark: String,
    val layout: String,
    val period: Int,
    val periods: String,
    val primaries: List<PrimaryBean>,
    val province: String,
) : Parcelable

@Parcelize
@Keep
data class PrimaryBean(
    val bid: String,
    val id: String,
    val primary: String,
    var isShow: Boolean,
    val secondaries: List<SecondaryBean>
) : Parcelable

@Parcelize
@Keep
data class SecondaryBean(
    val bid: String,
    val id: String,
    var isShow: Boolean,
    val paginations: List<PaginationBean>,
    val secondary: String
) : Parcelable

@Parcelize
@Keep
data class PaginationBean(
    val bid: String? = "",
    val id: String? = "",
    val newBooks: List<NewBookBean>? = null,
    val pagination: String? = "",
    val type: String? = "",
    var page: Int,
    val url: String,
    val jump: String?,//jump有值就用jump否则id
    val bookid: String?
) : Parcelable

@Parcelize
@Keep
data class NewBookBean(
    val bid: String,
//    val cpEwms: List<Any>,
    val cpname: String,
    val cpyid: String,
    val id: String,
    val pagename: String,
    val paginationId: String,
    val phone: String
) : Parcelable

@Parcelize
@Keep
data class DirectorieBean(
    val city: String,
    var isShow: Boolean = false,
    val area: List<AreaBean>?,
) : Parcelable

@Parcelize
@Keep
data class DirectorieHZBean(
    val city: String,
    var isShow: Boolean = false,
    val area: List<AreaHZBean>?,
) : Parcelable

@Parcelize
@Keep
data class AreaHZBean(
    val area: String,
    var isShow: Boolean = false,
    val page: List<String>?,
    val paginations: List<PaginationBean>?,
) : Parcelable

@Parcelize
@Keep
data class AreaBean(
    val area: String,
    var isShow: Boolean = false,
    val page: String,
) : Parcelable

@Parcelize
@Keep
data class BookMarkBean(
    val id: String,
    var bookid: String,
    val paginationId: String,
    val province: String,
    val layout: String,
    val periods: String,
    val period: Int,
    val pagination: PaginationBean,
    val userid: String,
    val code: String,
    val isMarketable: String,
    val page: Int,
    var isSelected: Boolean = false,
) : Parcelable


@Parcelize
@Keep
data class BookMarksBeans(
    val name: String,
    var isSelected: Boolean = false,
    var bookmarks: MutableList<BookMarkBean>,
) : Parcelable

@Parcelize
@Keep
data class BookRecepitPeriodsBean(
    val bookRecepitPeriods: List<BookRecepitPeriodBean>
) : Parcelable

@Parcelize
@Keep
data class BookRecepitPeriodBean(
    val id: String,
    val periods: List<PeriodBean>,
    val province: String
) : Parcelable

@Parcelize
@Keep
data class PeriodBean(
    val periods: String,
    val screenings: List<ScreeningBean>
) : Parcelable

@Parcelize
@Keep
data class ScreeningBean(
    val city: List<CityBean>,
    val provin: String
) : Parcelable

@Parcelize
@Keep
data class CityBean(
    val areas: List<AreasBean>,
    val city: String
) : Parcelable

@Parcelize
@Keep
data class AreasBean(
    val prefecture: List<String>?,
    val area: String
) : Parcelable

@Parcelize
@Keep
data class BookReceiptBean(
    val attached: String,
    val counts: Int,
    val items: List<BookReceiptItemBean>?,
    val page: Int,
    val pages: Int,
    val pagesize: Int
) : Parcelable

@Parcelize
@Keep
data class BookReceiptItemBean(
    val adress: String,
    val area: String,
    val prefecture: String? = null,
    val book: String,
    val category: String,
    val city: String,
    val contact: String,
    val cpname: String,
    val created: Long,
    val id: String,
    val image: String,
    val introduction: String,
    val isdispose: String,
//    val num: Any,
    val periods: String,
    val phone: String,
    val provin: String,
    val style: String,
    var type: String?,
    var images: List<String>?,
    val updated: Long,
    val updatedtime: String,
    val uploadSaler: String,
    val uploadSalername: String,
    val uploadUser: String,
    val name: String?,
    var isSelected: Boolean? = false,
    var position: Int? = 0,
    var positionChild: Int? = 0,
) : Parcelable

@Parcelize
@Keep
data class ReceiptPeriodsBean(
    val book: String,
    var periods: String
) : Parcelable